package com.tianji.learning.config;


import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.extension.plugins.handler.TableNameHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor;
import com.tianji.learning.utils.TableInfoContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;


@Configuration
public class MybatisPlusConfig {
    @Bean
    public DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor() {

        //key : 需要替换的表名 value：替换表名的处理器
        Map<String, TableNameHandler> tableMap = new HashMap<>(1);

        //points_board 是需要替换的，如果使用MP操作的是points_board表，就会替换新的表名
        tableMap.put("points_board", new TableNameHandler() {

            //sql 当前执行的sql雨具
            //tableName： 就是表名
            //返回值就是替换新的表名
            @Override
            public String dynamicTableName(String sql, String tableName) {
                return TableInfoContext.getInfo();
            }
        });
        return new DynamicTableNameInnerInterceptor(tableMap);
    }
}